
const BASE_URL='http://42.192.83.237:8080'  //基础请求路径  http://172.16.235.16:8888

const json2url=(json)=>{
    let arr=[];
    for(let name in json){
        arr.push(name+"="+json[name]) //"id=1&name=admin&pwd=123"
    }
    return arr.join("&")
}

const http=({url,method="GET",params={},data={}})=>{
    if(!url)return;//如果没有传递请求路径，就结束

    const token=sessionStorage.getItem("token") || "";//发起请求之前，先获取token
    // console.log(token)
    let options={
        method,
        headers:{
            token
        }
        // body:JSON.stringify(data)
    }
    //设置请求主体信息(只有post系列请求才可以设置,get系列请求会报错,格式有要求:json字符串,URLENCODED格式字符串,普通字符串,FormData格式对象,Buffer/bolb格式...不能是普通对象,并且要根据请求主体的数据格式,配置相关的请求头(Content-Type)
    // 处理请求主体:只针对于POST系列请求；body是个纯粹对象，根据当前后台要求，把其变为urlencoded格式！
    if(method.toLowerCase()==="POST"){
        options.body=JSON.stringify(data)
    }

    return fetch(BASE_URL+url+"?"+json2url(params),options)
        .then(response=>{
            // console.log(response);
            if(response.status===401){
                window.location.href="/login";
                sessionStorage.removeItem('token');
            }else{
                return response.json()
            }
        })
}

export default http;
/*
* http({
*   url:"",
*   method:"",
*   params:{}   |   data:{}          -------get请求params      post---data:{}
*
* }).then(res=>{
*   //在这里直接拿到数据结果
* })
* 使用 token 的内容页封装进去
*
* */